﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using condortravel.operaciones.business.operaciones;
using CondorTravelOperacionesWeb.Source;
using condortravel.operaciones.common.Log;
using condortravel.operaciones.core.Events;

namespace CondorTravelOperacionesWeb.Pages.Seguimiento
{
    public partial class FormSeguimientoOperaciones : PageBase
    {
        #region Business Objects
        private OperacionesServices operacionesServices;

        public OperacionesServices OperacionesServices
        {
            set { operacionesServices = value; }
        }
        #endregion

        #region Page Events
        protected void Page_Load(object sender, EventArgs e)
        {
            UCSeguimientoOperaciones.OperacionesServices = this.operacionesServices;
            UCBitacora.OperacionesServices = this.operacionesServices;
            UCProgramaciones.OperacionesServices = this.operacionesServices;
            UCEvento.OperacionesServices = this.operacionesServices;
            UCEditarEvento.OperacionesServices = this.operacionesServices;
        }
        #endregion

        #region Public Methods
        private void habilitarFicha(int tabIndex)
        {
            this.tbcModos.Tabs[tabIndex].Enabled = true;
            this.tbcModos.ActiveTabIndex = tabIndex;
            this.tbcModos.Tabs[tabIndex].Visible = true;

        }

        private void visualizarFicha(int tabIndex, bool visualiza)
        {
            this.tbcModos.Tabs[tabIndex].Enabled = visualiza;
            this.tbcModos.Tabs[tabIndex].Visible = visualiza;

        }

        #endregion

        #region Controls Events
        public void UCSeguimientoOperaciones_SelectItinerario(object sender, GridViewCommandEventArgs args)
        {
            if (args.CommandArgument != null && !args.CommandArgument.Equals(String.Empty))
            {
                UCProgramaciones.CodigoItinerario = int.Parse(args.CommandArgument.ToString());
                UCProgramaciones.mostrarItinerario();
                visualizarFicha(1, true);//programaciones
                visualizarFicha(2, false);//Bitacora
                visualizarFicha(3, false);//nuevo Evento
                visualizarFicha(4, false);//Editar evento
                habilitarFicha(1);//Programaciones
            }

        }

        public void UCProgramaciones_NuevoEventoClick(object sender, GridViewCommandEventArgs args)
        {
            if (args.CommandArgument != null && !args.CommandArgument.Equals(String.Empty))
            {
                UCEvento.CodigoProgramacion = int.Parse(args.CommandArgument.ToString());
                UCEvento.nuevoEvento();
                visualizarFicha(4, false);
                habilitarFicha(3);//Evento
            }
        }
        public void UCBitacora_EditarEventoClick(object sender, GridViewCommandEventArgs args)
        {
            if (args.CommandArgument != null && !args.CommandArgument.Equals(String.Empty))
            {
                UCEditarEvento.CodigoEvento = int.Parse(args.CommandArgument.ToString());
                UCEditarEvento.CodigoProgramacion = UCBitacora.CodigoProgramacion;
                UCEditarEvento.mostrarEvento();
                habilitarFicha(4);//Editar Evento
            }
        }

        public void UCBitacora_EliminarEvento_Click(object sender, GridViewCommandEventArgs args)
        {
            if (args.CommandArgument != null && !args.CommandArgument.Equals(String.Empty))
            {
                habilitarFicha(4);//Editar Evento
            }
        }
        


        public void UCProgramaciones_BitacoraClick(object sender, GridViewCommandEventArgs args)
        {
            if (args.CommandArgument != null && !args.CommandArgument.Equals(String.Empty))
            {
                UCBitacora.CodigoProgramacion = long.Parse(args.CommandArgument.ToString());
                UCBitacora.mostrarProgramacion();
                habilitarFicha(2);//Bitacora
            }
        }
        public void UCProgramaciones_SelectProgramacion(object sender, GridViewCommandEventArgs args)
        {

            habilitarFicha(2);//Bitacora
        }
        public void UCBitacora_SelectEvento_Click(object sender, GridViewCommandEventArgs args)
        {
            habilitarFicha(3);//Evento
        }

        public void UCEvento_UpdateClick(object sender, ProgramacionEventArgs args)
        {
            this.tbcModos.Tabs[3].Visible = true;
            UCBitacora.CodigoProgramacion = args.Programacion;
            UCBitacora.mostrarProgramacion();
            habilitarFicha(2);
            //Cargar nuevamente la lista de bitacora
        }
        public void UCBitacora_ActualizarProgEvento_Click(object sender, EventArgs args)
        {
            this.tbcModos.Tabs[1].Visible = true;
            UCProgramaciones.mostrarItinerario();
            habilitarFicha(1);
            visualizarFicha(2,false);
            visualizarFicha(3, false);
            visualizarFicha(4, false);
            //Cargar nuevamente la lista de bitacora
        }
        

        public void Prueba(object sender, EventArgs arg)
        {
            UCEvento.CodigoProgramacion = 1000;
            UCEvento.nuevoEvento();
        }
        public void Prueba1(object sender, EventArgs arg)
        {
            UCEvento.CodigoProgramacion = 1000;
            UCEvento.CodigoEvento = 2;
            UCEvento.mostrarEvento();
        }
        protected void ControlOK(string message)
        {
            UCMessage.showMessage(message, ELogLevel.INFO);

        }
        #endregion

        #region Page_Error

        protected void ControlError(object sender, Exception e)
        {            
            
            UCMessage.showMessage(e.Message, ELogLevel.ERROR);
            LogApp.WriteLog(ELogLevel.ERROR, e.Message + "-" + e.StackTrace);
        }

        #endregion

    }
}
